package com.tangyuan.oss.entity;

import io.minio.messages.Metadata;
import io.minio.messages.Owner;
import lombok.Data;

import java.time.ZonedDateTime;

/**
 * @Author: TangYuan
 * @Date: 2024/6/3 14:03
 * @描述: 文件类
 */
@Data
public class FileInfo {
    
    /**
     * 文件名，用于唯一标识一个文件。
     */
    private String fileName;
    
    /**
     * ETag，用于标识文件的内容版本。
     */
    private String etag;
    
    /**
     * 最后修改时间，用于记录文件的修改时间。
     */
    private ZonedDateTime lastModified;
    
    /**
     * 文件所有者的信息。
     */
    private Owner owner;
    
    /**
     * 文件的大小，以字节为单位。
     */
    private Long size;
    
    /**
     * 存储类型，表示文件在存储系统中的分类。
     */
    private String storageClass;
    
    /**
     * 是否为最新版本的标志。
     */
    private Boolean latestFlag;
    
    /**
     * 版本ID，用于多版本存储系统中标识特定版本的文件。
     */
    private String versionId;
    
    /**
     * 用户自定义元数据，用于存储额外的文件信息。
     */
    private Metadata userMetadata;
    
    /**
     * 用户标签，用于对文件进行分类和检索。
     */
    private String userTags;
    
    /**
     * 是否为目录的标志。
     */
    private boolean dirFlag;
    
    /**
     * 编码类型，用于处理文件名的编码问题。
     */
    private String encodingType;
}
